There exist a number of robot development kits within the field of robotics. Most kits provide the user with the base components necessary to build a robot including: wheels, a motor, a body, sensors and a processor. Kits typically require that the user build a bottom up software architecture that inputs sensor data, converts the sensor data into a logical format, performs control routines and sends commands to the motor. While such kits provide the user with the flexibility to design and create a custom robot, such kits also require extensive knowledge of robot mechanics, motor assembly, and machine software. The requirement that a user be familiar with such knowledge excludes a segment of potential users from being able to develop a robotic device to learn about robots.
There is a demand for a robotic development kit which provides a user with a basic robot that is already assembled and programmed, but that can be modified and expanded. While kits such as this exist, these kits are often either expensive, require that the user create low level programs to interpret sensor data and convert drive commands, provide undesirable expansion methods, or provide little safe guarding against destruction of the robot. An example of such a robot is one that provides a robot base with pre-programmed behaviors able to be altered and an expansion platform located on top of the robot's body. Such a robot includes a base with a motor, wheels and a basic sensor suite.
The expansion platform is located on top of the robot's body and includes mounting apparatus able to support a payload. Further features include a number of pre-programmed behaviors that form a deliberative software architecture able to respond to sensor output. The pre-programmed behaviors are included within a core software system able to the user and able to be deleted and that does not provide access to the level of software which converts native sensor data into logical values and the level of software which converts virtual drive commands into motor drive commands.
A robot such as the one discussed above typically does not include an expansion platform within the volume of the robot's main body and so absent user data input that specifies the dimensions of the payload; the robot is unable to know the width or length of its main body. This is a disadvantage because the robot is likely to avoid situations where the robot's body will become stuck. Additionally, while a deliberative software architecture provides a way of implementing behaviors, it is not an architecture that implements a behavior based system and so the user is unable to review and imitate actions present in such a system. Also, there exists a greater risk that the user will detrimentally alter the core software because the user is able to modify and delete the core software on the robot.
This risk can lead to errors in robot operation or anomalies in user created programs which further cause the robot to move in unexpected directions that cause the robot to be damaged. Additionally, it is markedly more difficult to program such a robot because the user must create their own set of routines able to convert native sensor data into logical values and able to convert virtual drive commands into native motor controls. Furthermore, the lack of a safe mode results in full control over the movement of the robot which can result in unexpected behaviors that cause the robot to drive over cliffs and may cause damage to the robot.